home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / class / linkval.d < prev    next >
Text File  |  1996-07-07  |  1KB  |  91 lines

  1.  
  2. /*
  3.  *
  4.  *    Copyright (c) 1993-1996 Algorithms Corporation
  5.  *    3020 Liberty Hills Drive
  6.  *    Franklin, TN  37067
  7.  *
  8.  *    ALL RIGHTS RESERVED.
  9.  *
  10.  *
  11.  *
  12.  */
  13.  
  14.  
  15.  
  16. defclass  LinkValue : Link  {
  17.     iValue;        /*  value referenced by this link    */
  18. };
  19.  
  20.  
  21. cmeth    gNewWithObj, <vNew> (value)
  22. {
  23.     object    lnk;
  24.     ivType    *iv;
  25.  
  26.     ChkArgNul(value, 2);
  27.     lnk = gNew(super);
  28.     iv = ivPtr(lnk);
  29.     iValue = value;
  30.     return lnk;
  31. }
  32.  
  33. imeth    gDeepCopy()
  34. {
  35.     object    nobj;
  36.  
  37.     nobj = gDeepCopy(super);
  38.     ivPtr(nobj)->iValue = iValue ? gDeepCopy(iValue) : NULL;
  39.     return nobj;
  40. }
  41.  
  42. imeth    object    gDeepDispose()
  43. {
  44.     if (iValue)
  45.         gDeepDispose(iValue);
  46.     return gDeepDispose(super);
  47. }
  48.  
  49. imeth    gValue()
  50. {
  51.     return iValue;
  52. }
  53.  
  54. imeth    gChangeValue(value)
  55. {
  56.     ChkArgNul(value, 2);
  57.     iValue = value;
  58.     return self;
  59. }
  60.  
  61. imeth    gStringRepValue()
  62. {
  63.     return iValue ? gStringRepValue(iValue) : gNewWithStr(String, "(null)");
  64. }
  65.  
  66. imeth    gStringRep()
  67. {
  68.     object    a, b, s;
  69.  
  70.     a = gStringRepValue(super);
  71.     b = iValue ? gStringRepValue(iValue) : gNewWithStr(String, "(null)");
  72.     s = vBuild(String, gName(ClassOf(self)), " (", a, ", ", b, ")\n", NULL);
  73.     gDispose(a);
  74.     gDispose(b);
  75.     return s;
  76. }
  77.  
  78.  
  79.  
  80. /*
  81.  *
  82.  *    Copyright (c) 1993-1996 Algorithms Corporation
  83.  *    3020 Liberty Hills Drive
  84.  *    Franklin, TN  37067
  85.  *
  86.  *    ALL RIGHTS RESERVED.
  87.  *
  88.  *
  89.  *
  90.  */
  91.